home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / DELPHI32 / BUTTONS / ADDBTN95 / ADDBTN95.PAS next >
Pascal/Delphi Source File  |  1996-06-06  |  8KB  |  233 lines

  1. {****************************************************************}
  2. {Delphi 2.0 only                                                 }
  3. {AddBtn95 derives TRadioButton95 and TCheckBox95 from            }
  4. {                 TRadioButton And TCheckBox to Give them the    }
  5. {                 Additional Formatting Functionality found in   }
  6. {                 Windows 95                                     }
  7. {Added or changed properties :                                   }
  8. {  Alignment  : How the Text next to the button is aligned       }
  9. {  AlignmentBtn : Where the Button is positioned                 }
  10. {  LikePushButton : Does the control look Like a Push Button?    }
  11. {  VerticalAlignment : Where the text and button are positioned  }
  12. {  WordWrap : Wrap the text if the box is to narrow              }
  13. {****************************************************************}
  14. {Ver 1.0                                                         }
  15. {Copyright(c) 1996 PA van Lonkhuyzen                             }
  16. {e-mail : peterv@global.co.za                                    }
  17. {****************************************************************}
  18.  
  19. unit addbtn95;
  20.  
  21. interface
  22.  
  23. uses
  24.   Windows,  StdCtrls, Classes, controls;
  25.  
  26. type
  27.   TVAlignment = (vaTop,vaBottom,vaCenter);
  28.   TCheckBox95 = class(TCheckBox)
  29.   private
  30.    fAlignment : TAlignment;
  31.    fAlignmentBtn : TLeftRight;
  32.    fLikePushButton : Boolean;
  33.    fVerticalAlignment : TVAlignment;
  34.    fWordWrap : Boolean;
  35.   protected
  36.     procedure createparams(var Params: TCreateParams); override;
  37.     Procedure SetLikePushButton(ALikePushButton : Boolean);
  38.     Procedure SetWordWrap(AWordWrap : Boolean);
  39.     Procedure SetAlignment(AAlignment : TAlignment);
  40.     Procedure SetAlignmentBtn(AAlignmentBtn : TLeftRight);
  41.     Procedure SetVerticalAlignment(AVerticalAlignment : TVAlignment);
  42.   public
  43.     { Public declarations }
  44.   published
  45.    Property Alignment : TAlignment Read fAlignment Write SetAlignment;
  46.    Property AlignmentBtn : TLeftRight Read fAlignmentBtn Write SetAlignmentBtn;
  47.    Property LikePushButton : Boolean Read fLikePushButton Write SetLikePushButton;
  48.    Property VerticalAlignment : TVAlignment Read fVerticalAlignment Write SetVerticalAlignment;
  49.    Property WordWrap : Boolean Read fWordWrap Write SetWordWrap;
  50. end;
  51.  
  52.   TRadioButton95 = class(TRadioButton)
  53.   private
  54.    fAlignment : TAlignment;
  55.    fAlignmentBtn : TLeftRight;
  56.    fLikePushButton : Boolean;
  57.    fVerticalAlignment : TVAlignment;
  58.    fWordWrap : Boolean;
  59.   protected
  60.     procedure createparams(var Params: TCreateParams); override;
  61.     Procedure SetLikePushButton(ALikePushButton : Boolean);
  62.     Procedure SetWordWrap(AWordWrap : Boolean);
  63.     Procedure SetAlignment(AAlignment : TAlignment);
  64.     Procedure SetAlignmentBtn(AAlignmentBtn : TLeftRight);
  65.     Procedure SetVerticalAlignment(AVerticalAlignment : TVAlignment);
  66.   public
  67.     { Public declarations }
  68.   published
  69.    Property Alignment : TAlignment Read fAlignment Write SetAlignment;
  70.    Property AlignmentBtn : TLeftRight Read fAlignmentBtn Write SetAlignmentBtn;
  71.    Property LikePushButton : Boolean Read fLikePushButton Write SetLikePushButton;
  72.    Property VerticalAlignment : TVAlignment Read fVerticalAlignment Write SetVerticalAlignment;
  73.    Property WordWrap : Boolean Read fWordWrap Write SetWordWrap;
  74. end;
  75.  
  76. procedure Register;
  77.  
  78. implementation
  79. procedure TRadioButton95.createparams(var Params: TCreateParams);
  80. begin
  81.   Inherited createparams(Params);
  82.   params.style:=params.style and not(BS_LEFT or BS_RIGHT or BS_CENTER OR
  83.                                      BS_LEFTTEXT or BS_RIGHTBUTTON OR
  84.                                      BS_TOP OR BS_BOTTOM OR BS_VCENTER);
  85.   case fVerticalAlignment of
  86.     vaTop : params.style:=params.style or BS_TOP;
  87.     vaBottom : params.style:=params.style or BS_BOTTOM;
  88.     else
  89.       params.style:=params.style or BS_VCENTER;
  90.   end;
  91.   if fAlignmentBtn=taRightJustify then
  92.     params.style:=params.style or BS_RIGHTBUTTON;
  93.   case fAlignment of
  94.     taLeftJustify : params.style:=params.style or BS_LEFT;
  95.     taRightJustify : params.style:=params.style or BS_RIGHT;
  96.     else params.style:=params.style or BS_CENTER;
  97.   End;
  98.   if fLikePushButton then
  99.     params.style:=params.style or bs_pushLike;
  100.   if fwordwrap then
  101.     params.style:=params.style or bs_MultiLine;
  102.  
  103. end;
  104.  
  105.  
  106. Procedure TRadioButton95.SetAlignment(AAlignment : TAlignment);
  107. Begin
  108.    If (AAlignment <> fAlignment) then
  109.    begin
  110.      fAlignment := AAlignment;
  111.      recreatewnd;
  112.    end;
  113. End;
  114.  
  115.  
  116. Procedure TRadioButton95.SetAlignmentBtn(AAlignmentBtn : TLeftRight);
  117. Begin
  118.    If (AAlignmentBtn <> fAlignmentBtn) then
  119.    begin
  120.      fAlignmentBtn := AAlignmentBtn;
  121.      recreatewnd;
  122.    end;
  123. End;
  124.  
  125. Procedure TRadioButton95.SetLikePushButton(ALikePushButton : Boolean);
  126. Begin
  127.    If (ALikePushButton <> fLikePushButton) then
  128.    begin
  129.      fLikePushButton := ALikePushButton;
  130.      recreatewnd;
  131.    end;
  132. End;
  133.  
  134. Procedure TRadioButton95.SetWordWrap(AWordWrap : Boolean);
  135. Begin
  136.    If (AWordWrap <> fWordwrap) then
  137.    begin
  138.      fWordwrap := AWordWrap;
  139.      recreatewnd;
  140.    end;
  141. End;
  142.  
  143.  
  144. Procedure TRadioButton95.SetVerticalAlignment(AVerticalAlignment : TVAlignment);
  145. Begin
  146.    If (AVerticalAlignment <> fVerticalAlignment) then
  147.    begin
  148.      fVerticalAlignment := AVerticalAlignment;
  149.      Recreatewnd;
  150.    end;
  151. End;
  152.  
  153. procedure TCheckBox95.createparams(var Params: TCreateParams);
  154. begin
  155.   Inherited createparams(Params);
  156.   params.style:=params.style and not(BS_LEFT or BS_RIGHT or BS_CENTER OR
  157.                                      BS_LEFTTEXT or BS_RIGHTBUTTON OR
  158.                                      BS_TOP OR BS_BOTTOM OR BS_VCENTER);
  159.   case fVerticalAlignment of
  160.     vaTop : params.style:=params.style or BS_TOP;
  161.     vaBottom : params.style:=params.style or BS_BOTTOM;
  162.     else
  163.       params.style:=params.style or BS_VCENTER;
  164.   end;    
  165.   if fAlignmentBtn=taRightJustify then
  166.     params.style:=params.style or BS_RIGHTBUTTON;
  167.   case fAlignment of
  168.     taLeftJustify : params.style:=params.style or BS_LEFT;
  169.     taRightJustify : params.style:=params.style or BS_RIGHT;
  170.     else params.style:=params.style or BS_CENTER;
  171.   End;
  172.   if fLikePushButton then
  173.     params.style:=params.style or bs_PushLike;
  174.   if fwordwrap then
  175.     params.style:=params.style or bs_MultiLine;
  176.  
  177. end;
  178.  
  179.  
  180. Procedure TCheckBox95.SetAlignment(AAlignment : TAlignment);
  181. Begin
  182.    If (AAlignment <> fAlignment) then
  183.    begin
  184.      fAlignment := AAlignment;
  185.      recreatewnd;
  186.    end;
  187. End;
  188.  
  189.  
  190. Procedure TCheckBox95.SetAlignmentBtn(AAlignmentBtn : TLeftRight);
  191. Begin
  192.    If (AAlignmentBtn <> fAlignmentBtn) then
  193.    begin
  194.      fAlignmentBtn := AAlignmentBtn;
  195.      recreatewnd;
  196.    end;
  197. End;
  198.  
  199. Procedure TCheckBox95.SetLikePushButton(ALikePushButton : Boolean);
  200. Begin
  201.    If (ALikePushButton <> fLikePushButton) then
  202.    begin
  203.      fLikePushButton := ALikePushButton;
  204.      recreatewnd;
  205.    end;
  206. End;
  207.  
  208. Procedure TCheckBox95.SetWordWrap(AWordWrap : Boolean);
  209. Begin
  210.    If (AWordWrap <> fWordwrap) then
  211.    begin
  212.      fWordwrap := AWordWrap;
  213.      recreatewnd;
  214.    end;
  215. End;
  216.  
  217.  
  218. Procedure TCheckBox95.SetVerticalAlignment(AVerticalAlignment : TVAlignment);
  219. Begin
  220.    If (AVerticalAlignment <> fVerticalAlignment) then
  221.    begin
  222.      fVerticalAlignment := AVerticalAlignment;
  223.      Recreatewnd;
  224.    end;
  225. End;
  226.  
  227. procedure Register;
  228. begin
  229.   RegisterComponents('Win95', [TCheckBox95,TRadioButton95]);
  230. end;
  231.  
  232. end.
  233.